/*
 
*/
class LogicTest{
	public static void main(String[] args){

		// 区分 & 与 && 短路
		// 相同点 1： & 与 && 运算结果相同
		// 相同点 2： 当符合左边是true时，二者都会执行右边代码
		// 不同点 当左边是false &继续执行右边代码 &&的右边代码不执行
		// 开发推荐 &&


		boolean b1 = true;
		b1 = false;
		int num1 = 10;
		if(b1 & (num1++ > 0)) System.out.println("北京");
		else System.out.println("南京");

		System.out.println("num1 = " + num1);

		boolean b2 = true;
		b2 = false;
		int num2 = 10;
		if(b2 && (num2++ > 0)) System.out.println("北京");
		else System.out.println("南京");

		System.out.println("num2 = " + num2);

		// | 与 || 类似 & 与 &&



		// 求一个0~255范围内的整数的十六位进制 
		// (10进制)60 → (16进制)3C 

		// 方式一 自动实现
		String str1 = Integer.toBinaryString(60);
		String str2 = Integer.toHexString(60);

		System.out.println(str1);
		System.out.println(str2);


		// 方式二 手动实现
		int i1 = 60;
		int i2 = i1 & 15; // 取后4bit
		String j = (i2>9)? (char)(i2 - 10 + 'A') + "" : i2 + "" ;

		int temp = i1 >>> 4;
		i2 = temp & 15;
		String k = (i2>9)? (char)(i2 - 10 + 'A') + "" : i2 + "" ;

		System.out.println(k + "" + j);




	}
}